Cocoa est une API native d'Apple pour le développement orienté objet sur son système d'exploitation Mac OS X. C'est l'une des cinq API majeures disponibles pour Mac OS X, les autres étant : Carbon, la boîte à outils Macintosh (pour l'environnement obsolète Classic), POSIX (pour l'environnement BSD) et Java. Certains environnements, comme Perl et Ruby sont considérés comme mineurs, car ils n’ont pas accès à toutes les fonctionnalités et ne sont généralement pas utilisés pour le développement d'applications à part entière.
Les applications Cocoa sont typiquement construites en utilisant les outils de développement fournis par Apple, Xcode (anciennement Project Builder) et Interface Builder, en utilisant les langages de programmation Objective-C et Swift. De plus, l'environnement de programmation Cocoa peut être accessible en utilisant d'autres outils, comme Ruby (via MacRuby (en) et RubyMotion (en)) et C# (via Xamarin). Il est aussi possible d'écrire un programme Objective-C Cocoa dans un simple éditeur de texte et de le compiler par la suite avec GCC ou en utilisant les scripts makefile de GNUstep.
Pour l'utilisateur final, les applications dites Cocoa sont considérées comme étant celles écrites en utilisant l'environnement de programmation Cocoa. Habituellement, ces applications ont un ressenti différent dû à l'automatisation d'une multitude d'aspects de l'application par l'environnement Cocoa. Ceci est ainsi fait pour suivre la politique de développement d'Apple.
Au fil des versions de Mac OS X, on assiste à un rapprochement progressif de Cocoa et de Carbon, construits de plus en plus à partir de la même base (Core Foundation (en)). Certaines applications Carbon, tirant parti des nouvelles fonctionnalités de Mac OS X, ne fonctionnent plus sous Mac OS 9 et la limite se fait de plus en plus floue. Il est rare de trouver des applications Cocoa qui ne font aucun appel à l’API Carbon.